There is, and will continue to be, advances and changes in how enterprises conduct business. Whether these advances and changes occur through growing competition and globalization, mergers and acquisitions, or a revamping of business models, the key for success will often depend on how quickly the enterprise's information technology (IT) organization can adapt to evolving business needs. Therefore, a major challenge to these enterprises is how they handle change.
For organizations to enable business agility, they must ensure that enterprise applications are not only high-performance business engines driving efficiencies, but also that they become flexible building blocks of future business systems. A recent promising solution has risen in the form of services. A service, such as a Web service or program, represents a self-contained, self-describing piece of application functionality that can be found and accessed by other applications. A service is self-contained because the application using the service does not have to depend on anything other than the service itself, and self-describing because all the information on how to use the service can be obtained from the service itself. The descriptions are centrally stored and accessible through standard mechanisms.
Instead of requiring programmers to establish and maintain links between applications, services are loosely coupled, making connections simpler and more flexible and allowing application architects to more easily find and understand services offered by other cooperative applications. However, the problem that exists with services is that they are often designed to expose functionality of individual applications and thus may be too limited to be efficient building blocks for enterprise-wide business processes. A solution to this shortfall has been the migration to a Service Oriented Architecture (SOA). The SOA is an open architecture middleware, which builds on the benefits of services. An example of an SOA can be found in the Enterprise Service Framework (ESF), which is commercially available from SAP AG, Walldorf, Germany. The term “SOA” may also be used to refer to “distributed objects” architecture, such as CORBA (Common Object Request Broker Architecture) and DCOM (Distributed Component Object Model). SOA enables aggregating services into business-level enterprise services to provide more meaningful building blocks for the task of automating enterprise-scale business scenarios. ESF allows IT organizations to efficiently develop composite applications, defined as applications that compose functionality and information from existing systems to support new business processes or scenarios.
The SOA also enables the use of an enterprise services repository. The enterprise services repository stores relevant pre-existing enterprise services and makes them available for use by, for example, selected partners and customers. By using the enterprise services repository, these selected partners and customers can use the pre-existing enterprise services to facilitate in the implementation of new services and corresponding business objects. The term business object (BO) represents an object having significance to a business. An “object” refers to a software bundle of variables (e.g., data) and related methods. The business object may be implemented as a data structure that is stored in a database. Moreover, in object-oriented programming, an “object” is a concrete realization (an instance) of a class that consists of data and the operations associated with that data. An example of a business object is a purchase order business object having data and related methods. When a purchase order business object is instantiated, a user may interact with the purchase order by, for example, providing data for fields in the purchase order.
Output management usually refers to capturing information from a source and to delivering the captured information in an appropriate format to a destination. For example, an application, such as a word processing program or a database management program, may include an output management mechanism to format a document based on the type of output, such as print, facsimile, electronic mail (email), presentation on the web in HTML (hyper text markup language), or presentation on a mobile wireless device in WML (wireless markup language). To format a document into an appropriate output format, an application may use a template. However, the template used by the application may be specific to that application. For example, a word processing application may use a template specific to the word processing program to format an output. And a database management application may use another template specific to the database management application to format the same output. Thus, traditional output management may result in multiple templates, which are unique to their applications. As such, there is a need for improved output management in a service oriented architecture.